<!--  -->
<template>
  <div class="login-view">
    <div class="login-form">
      <!-- logo -->
      <div class="logo">
        <img src="https://x.dscmall.cn/storage/images/wap_logo.jpg?4RugNq" class="img" />
      </div>
      <!-- 输入手机号 -->
      <div class="input-box">
        <i class="iconfont icon-profile"></i>
        <input type="text" placeholder="请输入您的用户名/手机号" class="input" v-model="username" />
      </div>
      <!-- 输入密码 -->
      <div class="input-box">
        <i class="iconfont icon-mima">
        </i><input placeholder="请输入登录密码" :type="pwdFlag ? 'password' : 'text'" class="input" v-model="password" />
        <i class="iconfont icon-xianshi" @click="changePwd" :class="pwdFlag ? '' : 'pwd-show'"></i>
        <a href="" class="forgetpwd">忘记密码</a>
      </div>
      <!-- 协议 -->
      <div class="privacy">
        <van-checkbox v-model="checked" checked-color="#ee0a24">我已阅读并同意</van-checkbox>
        <span class="privacy-link">《隐私声明3》</span>
      </div>
      <!-- 登录按钮 -->
      <div class="signup-button">
        <button class="btn btn-lg-red" @click="signinBtn">账号密码登录</button>
        <div class="btn btn-bor-red">短信快捷登录</div>
        <div class="tips">
          还没有账号?<a href="#" class="go-register" @click.prevent="toRegister">立即去注册</a>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
//这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
//例如：import 《组件名称》 from '《组件路径》';
import { loginApi } from '@/api/user'
import qs from 'qs';
export default {
  //import引入的组件需要注入到对象中才能使用
  components: {},
  data() {
    //这里存放数据
    return {
      username: '',
      password: '',
      checked: true,
      pwdFlag: true

    };
  },
  //计算属性 类似于data概念
  computed: {},
  //监控data中的数据变化
  watch: {},
  //方法集合
  methods: {
    //改变密码表示
    changePwd: function () {
      this.pwdFlag = !this.pwdFlag;
    },
    signinBtn() {
      let signDatas = {
        username: this.username,
        password: this.password
      }
      loginApi(qs.stringify(signDatas)).then(res => {
        if (res.data.status == 'success') {
          // 1.将token存储到本地存储中
          localStorage.setItem('token', res.data.data)
          // 2.跳转到我的页面
          this.$router.push('/mineview');
        } else {
          Toast(res.data.errors.message);
        }
      })
    },
    toRegister() {
      this.$router.push('/registerview');
    }
  },
  beforeCreate() { }, //生命周期 - 创建之前
  //生命周期 - 创建完成（可以访问当前this实例）
  created() { },
  beforeMount() { }, //生命周期 - 挂载之前
  //生命周期 - 挂载完成（可以访问DOM元素）
  mounted() {
    console.log(this.$route.meta);
  },
  beforeUpdate() { }, //生命周期 - 更新之前
  updated() { }, //生命周期 - 更新之后
  beforeDestroy() { }, //生命周期 - 销毁之前
  destroyed() { }, //生命周期 - 销毁完成
  activated() { }, //如果页面有keep-alive缓存功能，这个函数会触发
};
</script>
<style lang="less">
.login-view {
  padding: 0 30px;

  .logo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    overflow: hidden;
    margin: 15% auto;

    img {
      width: 100%;
      display: block;
    }
  }

  .input-box {
    height: 30px;
    line-height: 30px;
    padding: 5px 0;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #dcdcdc;
    margin-bottom: 5%;

    i {
      margin-right: 10px;
      color: #666;
      height: 30px;
      line-height: 26px;
      font-size: 20px;
    }

    input {
      flex: 1;
    }

    .pwd-show {
      color: red;
    }
  }

  .privacy {
    display: flex;
    margin: 2rem auto;
  }

  .signup-button {
    margin-top: 10%;

    .btn {
      height: 40px;
      padding: 0;
      border-radius: 20px;
      line-height: 40px;
      margin-bottom: 5%;
      font-size: 1.4rem;
      color: #fff;
      border: 0;
      text-align: center;
      width: 100%;
    }

    .btn-lg-red {
      background: linear-gradient(-88deg, #ff4f2e, #f91f28);
    }

    .btn-bor-red {
      border: 1px solid #f92028;
      color: #f92028;
      font-weight: 700;
    }

    .tips {
      font-size: 12px;
      color: #333;
      text-align: center;

      .go-register {
        margin-left: 5px;
        color: #f92028;
        cursor: pointer;
      }
    }
  }
}
</style>